package com.itheima.window;

public class LeetCode2379 {
    //给你一个长度为 n 下标从 0 开始的字符串 blocks ，blocks[i] 要么是 'W' 要么是 'B' ，表示第 i 块的颜色。字符 'W' 和 'B' 分别表示白色和黑色。
    //
    //给你一个整数 k ，表示想要 连续 黑色块的数目。
    //
    //每一次操作中，你可以选择一个白色块将它 涂成 黑色块。
    //
    //请你返回至少出现 一次 连续 k 个黑色块的 最少 操作次数。
    //
    // 实际就是找一个窗口中的白块数量最小值
    public int minimumRecolors(String blocks, int k) {
        int num = 0;
        int min = k;
        char[] blockslist = blocks.toCharArray();
        int n = blockslist.length;

        for (int i = 0; i < n; i++) {
            if(blockslist[i] == 'W'){
                num++;
            }
            if(i < k-1){
                continue;
            }
            min = Math.min(min,num);
            char last = blockslist[i-k+1];
            if(last == 'W'){
                num--;
            }
        }
        if(n < k){
            return num;
        }
        return min;
    }
}
